type.convert(as.is=TRUE)
}
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/combining for analysis")
pivoted_data<-read_csv("filterd_data.csv")
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Fig_G tabel of corrilation")
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Apendix")
element_orders<-read_csv("instrument_elements.csv")
print(element_orders,n=26)
elements_conc<-element_orders$Conc_Order_reverse%>%na.omit()
elements_atomic<-element_orders$Atomic_Order%>%na.omit()
elements_alphabetical<-element_orders$Alphabetic_Order%>%na.omit()
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Fig_G tabel of corrilation")
ICP_data<-pivoted_data%>%
filter(Prosessing_Step=="ICP")%>%
select(ID,element,mean,SD)%>%
rename(mean_ICP=mean,SD_ICP=SD)
#join ICP data to graph and change the leval ordering so the graph is in the write order
joined_data<-full_join(pivoted_data,ICP_data,by=c("ID","element"))%>%
filter(element%in%elements_conc,
!is.na(RSD),
Prosessing_Step!="ICP")%>%
mutate(Prosessing_Step = fct_relevel(Prosessing_Step,
"raw",
"sived",
"dried",
"vessile",
"ground",
"ignited"),
element = fct_relevel(element,elements_conc),
Depth = as.factor(Depth))
sumerising<-function(data){
#set number of levels needed for loop
element_nleval<-nlevels(as.factor(data$element))
element_levals<-levels(as.factor(data$element))
step_levals<-levels(as.factor(data$Prosessing_Step))
step_nleval<-nlevels(as.factor(data$Prosessing_Step))
for(l in 1:element_nleval){
#pick the eliment of this loop
eliment<-element_levals[l]
#filter data
f_data<-data%>%filter(element==eliment)
for(i in 1:step_nleval){
#pick the prosessing step of this loop
step<-step_levals[i]
#filter data again
filterd_data<-f_data%>%filter(Prosessing_Step==step)
#creat linnear model for slope and intersept
linnear_model<-lm(mean ~ mean_ICP,data = filterd_data)
#exstract slop/intersept and wrangel in to tibble
slope_intersept<-bind_rows(linnear_model[[1]])%>%
rename(slope=mean_ICP,intercept=`(Intercept)`)
#exstract confidence intervals and wrangel in to tibbel
c_1<-confint(linnear_model, level = 0.95)%>%
as_tibble()%>%
slice(1)%>%
mutate(across(everything(), ~ round(.,digits = 0)))%>%
summarise("Intersept 95% CI"=str_c("(",`2.5 %`,", ",`97.5 %`,")"))
c_2<-confint(linnear_model, level = 0.95)%>%
as_tibble()%>%
slice(2)%>%
mutate(across(everything(), ~ round(.,digits = 3)))%>%
summarise("Slope 95% CI"=str_c("(",`2.5 %`,", ",`97.5 %`,")"))
CI<-cbind(c_1,c_2)
#calculate average RSD
RSD<-filterd_data%>%summarise(RSD=mean(RSD))
#calculate n
N<-filterd_data%>%summarise(n=n())
#build metric set
metrics<-metric_set(rpd,rsq,rmse,rpiq,ccc,mae,rsq_trad)
#calculat meterics and organise and add slope/intersept and add names and move to front
element_stats<-filterd_data%>%
metrics(truth = mean_ICP,estimate = mean)%>%
pivot_wider(id_cols = .estimator,names_from = .metric,values_from = .estimate)%>%
mutate(N,
RSD,
slope_intersept,
CI,
Prosessing_Step=step,
element=eliment)%>%
select(!.estimator)%>%
relocate(element,Prosessing_Step)
#if function to combine data in to 1 df
if(c(i==1 & l==1)){
sum_stats<-bind_rows(element_stats)
}else{
sum_stats<-bind_rows(sum_stats,element_stats)
}
#close loop
}
}
#print data
sum_stats
}
summery_tabel<-sumerising(joined_data)
surface_summery_tabel<-joined_data%>%
filter(Depth==0)%>%
sumerising()
subsurface_summery_tabel<-joined_data%>%
filter(Depth==1)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")
View(slag_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")%>%
sumerising()
View(soil_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")
View(soil_summery_tabel)
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",mean_ICP=!NA())
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",mean_ICP==!NA())
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",!is.na(mean_ICP))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP))%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean))%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean))
View(slag_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean))%>%
select(!matrix)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean))%>%
select(!matrix)%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")
str(slag_summery_tabel)
str(soil)
str(soil_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean))%>%
select(!matrix)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
surface_summery_tabel<-joined_data%>%
filter(Depth==0)%>%
sumerising()
subsurface_summery_tabel<-joined_data%>%
filter(Depth==1)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")%>%
sumerising()
View(joined_data)
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")
slice(soil_summery_tabel,1:3)
tb1<-slice(soil_summery_tabel,1:3)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(tb1)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(soil_summery_tabel)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(soil_summery_tabel)%>%
sumerising()
View(slag_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(tb1)%>%
sumerising()
tb1<-slice(soil_summery_tabel,1:10)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(tb1)%>%
sumerising()
tb1<-slice(soil_summery_tabel,1:100)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag")%>%
bind_rows(tb1)%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean)!is.na(element),!is.na(Prosessing_Step))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean),!is.na(element),!is.na(Prosessing_Step))
View(slag_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),!is.na(mean),!is.na(element),!is.na(Prosessing_Step))%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
element%in%(!"P",!"As"))%>%
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
!element%in%c("P","As"))%>%
sumerising()
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
!element%in%c("P","As"))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
element%in%("Ti"))%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",
!element%in%("Ti"))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
element%in%("Ti"))%>%
bind_rows(soil_summery_tabel)
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
element%in%("Ti"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()
View(soil_summery_tabel)
View(slag_summery_tabel)
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",
element%in%c("As","P"))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
!element%in%c("As","P"))
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!is.na(mean),
!is.na(element),
!is.na(Prosessing_Step),
!element%in%c("As","P"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()
View(slag_summery_tabel)
#As and P in this tabel are from soil to hack the code
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!element%in%c("As","P"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()
#As and P in this tabel are from soil to hack the code...
#check the next tabel soil_summery remove %>% to make code work
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!element%in%c("As","P"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()%>%
filter(!element%in%c("As","P"))
View(slag_summery_tabel)
reorganising<-function(data){
#seting up values for loop
stat_levels<-colnames(data)%>%as_tibble()%>%slice(c(3:15))%>%as_vector()
stat_nlevel<-nlevels(as.factor(stat_levels))
#for loop to  itterate through stats
for (i in 1:stat_nlevel) {
#pick the prossesing step of this loop
stat<-stat_levels[i]
output<-data%>%
pivot_wider(id_cols = element,
names_from = Prosessing_Step,
values_from = !!sym(stat))%>%
transpose_tibble()%>%
mutate(Statistic=stat,across(everything(),~as.character(.)))%>%
relocate(Statistic)
#if function to combine data in to 1 df
if(i==1){
sum_stats<-bind_rows(output)
}else{
sum_stats<-bind_rows(sum_stats,output)
}
#close loop
}
#print data
sum_stats
}
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",
element%in%c("As","P"))%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",
element%in%c("As","P"))%>%
sumerising()
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")%>% #,
# element%in%c("As","P"))%>%
sumerising()
soil_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
soil_simple_tabel<-reorganising(soil_summery_tabel)
slag_simple_tabel<-reorganising(slag_summery_tabel)
soil_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
slag_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
library(tidyverse)
library(patchwork)
library(cowplot)
library(scales)
library(ggpmisc)
library(tidymodels)
library(RColorBrewer)
#my functons============
transpose_tibble<-function(tibble){
tibble%>%
rename(rowname=1)%>%
mutate(across(everything(),~as.character(.)))%>%
pivot_longer(cols = !rowname ,names_to = 'variable',  values_to = 'value') %>%
pivot_wider(id_cols = variable, names_from = rowname, values_from = value)%>%
type.convert(as.is=TRUE)
}
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/combining for analysis")
pivoted_data<-read_csv("filterd_data.csv")
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Fig_G tabel of corrilation")
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Apendix")
element_orders<-read_csv("instrument_elements.csv")
print(element_orders,n=26)
elements_conc<-element_orders$Conc_Order_reverse%>%na.omit()
elements_atomic<-element_orders$Atomic_Order%>%na.omit()
elements_alphabetical<-element_orders$Alphabetic_Order%>%na.omit()
setwd("C:/Users/s299038/OneDrive - Cranfield University/1. Rapid Measurement Tools - Niall/Chapter 3 - XRF Analysis Accuracy on Slag/Data Analysis/Fig_G tabel of corrilation")
ICP_data<-pivoted_data%>%
filter(Prosessing_Step=="ICP")%>%
select(ID,element,mean,SD)%>%
rename(mean_ICP=mean,SD_ICP=SD)
#join ICP data to graph and change the leval ordering so the graph is in the write order
joined_data<-full_join(pivoted_data,ICP_data,by=c("ID","element"))%>%
filter(element%in%elements_conc,
!is.na(RSD),
Prosessing_Step!="ICP")%>%
mutate(Prosessing_Step = fct_relevel(Prosessing_Step,
"raw",
"sived",
"dried",
"vessile",
"ground",
"ignited"),
element = fct_relevel(element,elements_conc),
Depth = as.factor(Depth))
sumerising<-function(data){
#set number of levels needed for loop
element_nleval<-nlevels(as.factor(data$element))
element_levals<-levels(as.factor(data$element))
step_levals<-levels(as.factor(data$Prosessing_Step))
step_nleval<-nlevels(as.factor(data$Prosessing_Step))
for(l in 1:element_nleval){
#pick the eliment of this loop
eliment<-element_levals[l]
#filter data
f_data<-data%>%filter(element==eliment)
for(i in 1:step_nleval){
#pick the prosessing step of this loop
step<-step_levals[i]
#filter data again
filterd_data<-f_data%>%filter(Prosessing_Step==step)
#creat linnear model for slope and intersept
linnear_model<-lm(mean ~ mean_ICP,data = filterd_data)
#exstract slop/intersept and wrangel in to tibble
slope_intersept<-bind_rows(linnear_model[[1]])%>%
rename(slope=mean_ICP,intercept=`(Intercept)`)
#exstract confidence intervals and wrangel in to tibbel
c_1<-confint(linnear_model, level = 0.95)%>%
as_tibble()%>%
slice(1)%>%
mutate(across(everything(), ~ round(.,digits = 0)))%>%
summarise("Intersept 95% CI"=str_c("(",`2.5 %`,", ",`97.5 %`,")"))
c_2<-confint(linnear_model, level = 0.95)%>%
as_tibble()%>%
slice(2)%>%
mutate(across(everything(), ~ round(.,digits = 3)))%>%
summarise("Slope 95% CI"=str_c("(",`2.5 %`,", ",`97.5 %`,")"))
CI<-cbind(c_1,c_2)
#calculate average RSD
RSD<-filterd_data%>%summarise(RSD=mean(RSD))
#calculate n
N<-filterd_data%>%summarise(n=n())
#build metric set
metrics<-metric_set(rpd,rsq,rmse,rpiq,ccc,mae,rsq_trad)
#calculat meterics and organise and add slope/intersept and add names and move to front
element_stats<-filterd_data%>%
metrics(truth = mean_ICP,estimate = mean)%>%
pivot_wider(id_cols = .estimator,names_from = .metric,values_from = .estimate)%>%
mutate(N,
RSD,
slope_intersept,
CI,
Prosessing_Step=step,
element=eliment)%>%
select(!.estimator)%>%
relocate(element,Prosessing_Step)
#if function to combine data in to 1 df
if(c(i==1 & l==1)){
sum_stats<-bind_rows(element_stats)
}else{
sum_stats<-bind_rows(sum_stats,element_stats)
}
#close loop
}
}
#print data
sum_stats
}
summery_tabel<-sumerising(joined_data)
surface_summery_tabel<-joined_data%>%
filter(Depth==0)%>%
sumerising()
subsurface_summery_tabel<-joined_data%>%
filter(Depth==1)%>%
sumerising()
#As and P in this tabel are from soil to hack the code... hence why i have removed them
#check the next tabel soil_summery remove %>% to make code work
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!element%in%c("As","P"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()%>%
filter(!element%in%c("As","P"))
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil",
element%in%c("As","P"))#%>%
#As and P in this tabel are from soil to hack the code... hence why i have removed them
#check the next tabel soil_summery remove %>% to make code work
slag_summery_tabel<-joined_data%>%
filter(matrix=="slag",!is.na(mean_ICP),
!element%in%c("As","P"))%>%
bind_rows(soil_summery_tabel)%>%
sumerising()%>%
filter(!element%in%c("As","P"))
soil_summery_tabel<-joined_data%>%
filter(matrix=="soil")%>% #,element%in%c("As","P"))#%>%
sumerising()
reorganising<-function(data){
#seting up values for loop
stat_levels<-colnames(data)%>%as_tibble()%>%slice(c(3:15))%>%as_vector()
stat_nlevel<-nlevels(as.factor(stat_levels))
#for loop to  itterate through stats
for (i in 1:stat_nlevel) {
#pick the prossesing step of this loop
stat<-stat_levels[i]
output<-data%>%
pivot_wider(id_cols = element,
names_from = Prosessing_Step,
values_from = !!sym(stat))%>%
transpose_tibble()%>%
mutate(Statistic=stat,across(everything(),~as.character(.)))%>%
relocate(Statistic)
#if function to combine data in to 1 df
if(i==1){
sum_stats<-bind_rows(output)
}else{
sum_stats<-bind_rows(sum_stats,output)
}
#close loop
}
#print data
sum_stats
}
simple_tabel<-reorganising(summery_tabel)
simple_tabel%>%write_csv("Fig_G_simple_tabel.csv")
surface_simple_tabel<-reorganising(surface_summery_tabel)
subsurface_simple_tabel<-reorganising(subsurface_summery_tabel)
soil_simple_tabel<-reorganising(soil_summery_tabel)
slag_simple_tabel<-reorganising(slag_summery_tabel)
surface_simple_tabel%>%write_csv("Fig_G_surface_simple_tabel.csv")
subsurface_simple_tabel%>%write_csv("Fig_G_subsurface_simple_tabel.csv")
soil_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
slag_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
soil_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
slag_simple_tabel%>%write_csv("Fig_G_slag_simple_tabel.csv")
soil_simple_tabel<-reorganising(soil_summery_tabel)
soil_simple_tabel%>%write_csv("Fig_G_soil_simple_tabel.csv")
